<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>腾讯日</title>
</head>
<body>
<script>
// 鸭子国的国王，喜欢听音乐， 1000只鸭子 组成嘎嘎叫合唱团， 
// 简单数据类型， 值是不可以改变的
// 复杂数据类型， 可以改变， 类型不能改变 
// const choir = []; // 合唱团数组 复杂数据类型 
// js 没有特定的Array 类型   
// 除了简单类型， 其他的都是对象 
// 数组是Object 的一种, 
// console.log(typeof choir);
// 流程式思维 -> 封装成一个个函数 
// 看到一个pc 设计稿的时候， 不再盯着html细节， 组件 
// 函数 对多行代码的封装， 组成一个功能单元
// 代码工作划分成一个个的函数 
// 每个函数都只做一件事 

let duck = {
    //sing:'dddd'
    sing() {
        console.log('嘎嘎嘎');
    }
} 

let cat = {
}

let chick = {
    sing() {
        console.log('嘎嘎嘎');
    }
}

/*
 *  @func 招募一个合唱团成员
 *  @return  {Array[{duck}]}
 */
const choir = [];

function buildChoir(animal) {
    if(animal.sing && typeof animal.sing === 'function'){
    choir.push(animal)   
    } 
}

for (let i = 0; i < 999; i++) {
    buildChoir(duck);
}

buildChoir(chick);
if (choir.length >= 1000) {
    console.log('合唱团招募完成了');
}
</script>
</body>
</html>